Forecasting Parking Demand

1. INTRODUCTION

Parking requirements are the dark matter of the urban universe: they affect transportation, culture, economy, environment, and land use in mysterious ways …

We approached the parking prediction challenge by first exploring the parking planning paradigm and identified fundamental flaws in the way parking problems were identified and potential solutions evaluated.

Facts: * There are approximately 260 million motor vehicles in the U.S. + Reference: link * There are about 327.16 million people in the US., of those, approximately 222 million are licensed drivers (in 2016). + Reference: link * That is equivalent to approximately 1.4 cars per person. In Europe, 298.9 million vehicles on Europe’s road which is roughly equivalent to 1 car for every two people. + Reference: link We are over-doing it, as is our typical, American way. * Despite problems with homelessness and housing unaffordability, no communities have laws that guarantee free housing for people, but nearly all jurisdictions have laws that mandate abundant, housing for vehicles. * It is estimated that there are about a billion off-street parking spaces in the United States. Each vehicle requires about 1,200 square feet of land for parking. That is more than the amount of land devoted to an average house, or enough land to produce a half-million calories of potatoes. * A typical surface parking space costs $5,000-10,000, and structured and underground parking spaces cost $20,000 to $80,000 to construct.

Parking requirement ordinances are often misestimated and not based on empirical evidence, leading to inefficient use of urban space. This belief inspired us to explore a shift in the parking planning paradigm.

Next, we explored plausible use-cases that inspired policy questions.

Policy Questions: Can parking be used more efficiently by sharing across differing temporal demand peaks? What is the optimal parking supply, consistent with Seattle communities strategic goals?

Parking is a great way to explore modeling and machine learning because this topic causes a plethora of conflicts of human interest & conflict over distribution of goods in ways that are often unseen. A properly trained model can make evidence-based decisions with minimal conflicts of interest and with better results.

The model outlined in this MarkDown seeks to predict parking volume.

USE CASE

Why would anyone want to replicate this model?

Parking management planning requires familiarity with [many] strategies, such as sharing, regulations, pricing, improved user information, and incentives to use nonauto modes, applied with common sense to increase parking efficiency and address specific problems.

Who is the actor? Planners/designers
Actions: Use cleaned data to predict parking volume Outcome: Visualizations and parking volume predictions

Seattle has a tremendous amount of data that allows us to try out our idea, so this is the city in which our parking prediction model is trained.

## Reading layer `city' from data source `C:\Users\Scott\Box\MUSA final\MUSA-MIDTERM\Final Project\admin\city.shp' using driver `ESRI Shapefile'
## Simple feature collection with 61 features and 4 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: 1239108 ymin: 61661.04 xmax: 1514147 ymax: 287672.9
## epsg (SRID):    NA
## proj4string:    +proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs

2. A. DATA

The Datasets we’ve identified to help us answer our questions are as follows:

Data Set Anticipated Features
Parcel (King County) retail stores, e.g. bigbox stores
Time Saturday, Sunday, weekdays
Time Workday hours
Parking lots Proximity to public surface parking volume
Street parking zones Availability of street parking
Streets Street hierarchy, e.g. smaller streets

Data wrangling comprised a significant portion of the work for this project. Not only did we spend time downloading and reviewing data from different sources, but the process of transforming and mapping data from “raw” forms into appropriate formats and compiling data into single data sets were notable challenges. For the purposes of parking prediction analytics, we needed parking space and volume data to know geographic information and which parcels, buildings, and landuses are adjacent. ArcMap was used to perform a join in which each parcel adopted the properties of its nearest blockface. The dataframe was then manipulated from long to wide format and joined back to the blockfaces, such that each blockface now knows how many of each building type are along it.

Below is a small sample of the 52,000 data points that were used to train the model.

Data Set Variables

Seattle Existing Parking

2. B. EXPLORING DATA & VARIABLES

Once the spatial data was properly joined, we moved on to exploring time series data, which required format change and variable encoding.

Time Series Variables

Parking Animation

Parking Animation

In the code below, we created a time series dataset, or time space panel, to look at parking by time.

We have data only for Tuesday, Wednesday, and Thursday during the week. The barplot shows the variation in parking by hour, confirming our assumption that time of day dictates parking volume during the work week. Weekday, Saturday, and Sunday could be three chunks by which we can divide our data because it appears that there is a qualitative difference between each group. As we refine our features, we may use an “is.weekday” feature to capture the humps that occur in parking volume data on the weekdays.

Coorelation Matrix

3. RESULTS

Now, on to our model!

Kitchen Sink Model with Na’s Removed

## 
## Call:
## lm(formula = total_vehicle_count ~ ., data = parking_clean %>% 
##     dplyr::select(-geometry, -elmntkey, -study_year, -time_stamp, 
##         -unitdesc, -rate, -"Air Terminal and Hangers", -"Auditorium//Assembly Bldg", 
##         -"Bed & Breakfast", -"Bowling Alley", -"Car Wash", -"Conv Store with Gas", 
##         -"Daycare Center", -"Driving Range", -"Fraternity/Sorority House", 
##         -"Gas Station", -"Golf Course", -"Greenhse/Nrsry/Hort Srvc", 
##         -"High Tech/High Flex", -"Historic Prop(Eat/Drink)", 
##         -"Historic Prop(Loft/Warehse)", -"Historic Prop(Residence)", 
##         -Houseboat, -"Historic Prop(Vacant Land)", -"Mini Lube", 
##         -"Mobile Home", -"Mobile Home Park", -"Movie Theater", 
##         -"Nursing Home", -"Office Park", -"Open Space Tmbr Land/Greenbelt", 
##         -"Open Space(Curr Use-RCW 84.34)", -"Park, Private(Amuse Ctr)", 
##         -"Rehabilitation Center", -"Restaurant(Fast Food)", -"Retail(Big Box)", 
##         -"Right of Way/Utility, Road", -"School(Private)", -"Service Station", 
##         -"Shell Structure", -"Shopping Ctr(Community)", -"Shopping Ctr(Nghbrhood)", 
##         -"Shopping Ctr(Regional)", -"Single Family(C/I Use)", 
##         -"Terminal(Auto/Bus/Other)", -"Terminal(Marine)", -"Terminal(Marine/Comm Fish)", 
##         -"Terminal(Rail)", -"Tideland, 1st Class", -"Townhouse Plat", 
##         -"Utility, Private(Radio/T.V.)", -"Vacant(Single-family)", 
##         -"Vet/Animal Control Srvc", -"Skating Rink(Ice/Roller)", 
##         ))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -35.022  -1.191   0.070   1.523  21.837 
## 
## Coefficients: (2 not defined because of singularities)
##                                               Estimate Std. Error t value
## (Intercept)                                 -1.927e+00  1.291e+00  -1.492
## parking_spaces                               6.493e-01  2.656e-03 244.510
## TOTAL_ZONE                                   1.932e-01  1.050e-02  18.401
## PRIMARYDISDISTRICT3                          2.981e-01  8.123e-02   3.670
## PRIMARYDISDISTRICT4                         -4.607e-01  9.949e-02  -4.631
## PRIMARYDISDISTRICT6                         -1.700e-01  9.378e-02  -1.813
## PRIMARYDISDISTRICT7                          6.145e-02  6.853e-02   0.897
## SHAPE_Leng                                  -1.496e-03  2.067e-04  -7.239
## parking_spaces_exg                           1.899e-02  3.168e-03   5.994
## `4-Plex`                                    -2.211e+00  1.300e-01 -17.016
## Apartment                                    1.931e-01  2.124e-02   9.092
## `Apartment(Co-op)`                          -2.974e-01  2.088e-01  -1.425
## `Apartment(Mixed Use)`                       1.697e-01  2.290e-02   7.409
## `Apartment(Subsidized)`                      3.151e-01  4.054e-02   7.773
## `Art Gallery/Museum/Soc Srvc`                1.842e-01  1.195e-01   1.542
## `Auto Showroom and Lot`                      9.235e-02  8.826e-02   1.046
## Bank                                        -2.168e-01  6.840e-02  -3.169
## `Church/Welfare/Relig Srvc`                  2.566e-01  5.182e-02   4.952
## Club                                         3.188e-01  1.147e-01   2.779
## `Condominium(Mixed Use)`                     2.529e-02  3.572e-02   0.708
## `Condominium(Office)`                        4.945e-01  1.516e-01   3.263
## `Condominium(Residential)`                   4.337e-01  4.810e-02   9.018
## `Conv Store without Gas`                    -1.479e+00  2.675e-01  -5.528
## Duplex                                       1.418e+00  1.173e-01  12.087
## `Governmental Service`                      -3.509e-01  9.256e-02  -3.791
## `Grocery Store`                              3.802e-01  1.626e-01   2.337
## `Group Home`                                 2.610e-01  9.993e-02   2.612
## `Health Club`                                3.164e-01  2.695e-01   1.174
## `Historic Prop(Misc)`                       -8.354e-02  1.047e-01  -0.798
## `Historic Prop(Office)`                      2.972e-01  9.267e-02   3.206
## `Historic Prop(Rec/Entertain)`              -1.648e-02  1.802e-01  -0.091
## `Historic Prop(Retail)`                      6.554e-01  1.900e-01   3.449
## Hospital                                     1.024e+00  1.288e-01   7.945
## `Hotel/Motel`                               -2.575e-01  4.658e-02  -5.528
## `Industrial Park`                           -1.719e+00  4.825e-01  -3.562
## `Industrial(Gen Purpose)`                    1.173e+00  9.322e-02  12.588
## `Industrial(Heavy)`                         -7.834e-01  1.682e-01  -4.658
## `Industrial(Lignt)`                         -5.768e-01  9.683e-02  -5.957
## Marina                                       1.191e+00  1.097e-01  10.861
## `Medical/Dental Office`                      6.693e-02  4.477e-02   1.495
## `Mini Warehouse`                            -8.256e-01  1.437e-01  -5.744
## `Mortuary/Cemetery/Crematory`                1.799e-01  3.539e-01   0.508
## `Office Building`                            9.908e-02  1.754e-02   5.649
## `Park, Public(Zoo/Arbor)`                   -1.168e-01  1.212e-01  -0.963
## `Parking(Assoc)`                             3.416e-01  5.408e-02   6.316
## `Parking(Commercial Lot)`                   -8.177e-02  4.048e-02  -2.020
## `Parking(Garage)`                           -3.068e-01  5.547e-02  -5.531
## `Post Office/Post Service`                   1.935e-01  2.035e-01   0.951
## `Residence Hall/Dorm`                        7.040e-01  1.872e-01   3.760
## `Restaurant/Lounge`                          7.591e-03  3.097e-02   0.245
## `Retail Store`                               8.822e-02  1.506e-02   5.857
## `Retail(Discount)`                          -6.673e-01  2.911e-01  -2.292
## `Retail(Line/Strip)`                         1.125e-01  1.481e-01   0.760
## `Retirement Facility`                        1.153e+00  1.062e-01  10.858
## `Rooming House`                             -3.637e-01  1.108e-01  -3.284
## `School(Public)`                             2.760e-01  1.254e-01   2.201
## `Service Building`                           3.753e-01  6.867e-02   5.465
## `Shopping Ctr(Maj Retail)`                   5.323e-01  2.133e-01   2.495
## `Single Family(C/I Zone)`                    5.498e-02  7.674e-02   0.716
## `Single Family(Res Use/Zone)`               -5.277e-02  6.947e-02  -0.760
## `Sport Facility`                             4.992e-01  3.117e-01   1.602
## `Tavern/Lounge`                             -1.535e+00  2.202e-01  -6.974
## `Transferable Dev Rights`                    1.091e+00  4.272e-01   2.555
## Triplex                                      4.468e-01  1.515e-01   2.950
## `Utility, Public`                            1.390e+00  4.391e-01   3.165
## `Vacant(Commercial)`                         2.156e-01  5.767e-02   3.739
## `Vacant(Industrial)`                         1.370e+00  2.130e-01   6.435
## `Vacant(Multi-family)`                       3.415e-01  1.480e-01   2.308
## Warehouse                                   -1.721e-01  4.217e-02  -4.081
## offstreet_spots                              4.880e-04  7.608e-05   6.414
## ARTCLASS                                     2.019e+00  3.124e-01   6.464
## ARTDESCRIPTMinor Arterial                    1.583e+00  3.159e-01   5.011
## ARTDESCRIPTNot Designated                    8.353e+00  1.010e+00   8.268
## ARTDESCRIPTPrincipal Arterial                       NA         NA      NA
## SPEEDLIMIT                                   3.039e-02  1.559e-02   1.949
## ONEWAYY                                      2.801e-01  4.002e-02   6.999
## SURFACEWIDTH                                 8.522e-03  9.478e-04   8.992
## NATIONHWYSYSY                                1.734e-01  5.667e-02   3.059
## STREETTYPEDowntown                           3.641e+00  6.272e-01   5.806
## STREETTYPEDowntown Neighborhood              2.994e-01  5.924e-02   5.054
## STREETTYPEDowntown Neighborhood Access      -1.830e+00  3.483e-01  -5.256
## STREETTYPEIndustrial Access                 -9.599e-02  5.583e-01  -0.172
## STREETTYPEMinor Industrial Access           -2.447e-01  3.966e-01  -0.617
## STREETTYPENeighborhood Corridor              9.882e-02  3.279e-01   0.301
## STREETTYPENeighborhood Yield Street         -1.727e+00  3.998e-01  -4.320
## STREETTYPEUrban Village Main                 3.137e+00  6.250e-01   5.019
## STREETTYPEUrban Village Neighborhood                NA         NA      NA
## STREETTYPEUrban Village Neighborhood Access -1.596e+00  3.455e-01  -4.618
## TRANCLASS                                    7.909e-02  1.472e-02   5.374
## SLOPE_PCT                                    4.312e-03  4.567e-03   0.944
## dateTime2                                   -3.995e-09  4.957e-10  -8.060
## hour                                         1.927e-02  2.852e-03   6.758
## day1                                         1.648e-01  1.580e-02  10.427
##                                             Pr(>|t|)    
## (Intercept)                                 0.135578    
## parking_spaces                               < 2e-16 ***
## TOTAL_ZONE                                   < 2e-16 ***
## PRIMARYDISDISTRICT3                         0.000243 ***
## PRIMARYDISDISTRICT4                         3.64e-06 ***
## PRIMARYDISDISTRICT6                         0.069909 .  
## PRIMARYDISDISTRICT7                         0.369899    
## SHAPE_Leng                                  4.59e-13 ***
## parking_spaces_exg                          2.06e-09 ***
## `4-Plex`                                     < 2e-16 ***
## Apartment                                    < 2e-16 ***
## `Apartment(Co-op)`                          0.154299    
## `Apartment(Mixed Use)`                      1.29e-13 ***
## `Apartment(Subsidized)`                     7.78e-15 ***
## `Art Gallery/Museum/Soc Srvc`               0.123158    
## `Auto Showroom and Lot`                     0.295419    
## Bank                                        0.001530 ** 
## `Church/Welfare/Relig Srvc`                 7.37e-07 ***
## Club                                        0.005455 ** 
## `Condominium(Mixed Use)`                    0.478993    
## `Condominium(Office)`                       0.001104 ** 
## `Condominium(Residential)`                   < 2e-16 ***
## `Conv Store without Gas`                    3.25e-08 ***
## Duplex                                       < 2e-16 ***
## `Governmental Service`                      0.000150 ***
## `Grocery Store`                             0.019427 *  
## `Group Home`                                0.009012 ** 
## `Health Club`                               0.240483    
## `Historic Prop(Misc)`                       0.424839    
## `Historic Prop(Office)`                     0.001345 ** 
## `Historic Prop(Rec/Entertain)`              0.927137    
## `Historic Prop(Retail)`                     0.000563 ***
## Hospital                                    1.98e-15 ***
## `Hotel/Motel`                               3.25e-08 ***
## `Industrial Park`                           0.000369 ***
## `Industrial(Gen Purpose)`                    < 2e-16 ***
## `Industrial(Heavy)`                         3.20e-06 ***
## `Industrial(Lignt)`                         2.59e-09 ***
## Marina                                       < 2e-16 ***
## `Medical/Dental Office`                     0.134945    
## `Mini Warehouse`                            9.29e-09 ***
## `Mortuary/Cemetery/Crematory`               0.611251    
## `Office Building`                           1.62e-08 ***
## `Park, Public(Zoo/Arbor)`                   0.335385    
## `Parking(Assoc)`                            2.71e-10 ***
## `Parking(Commercial Lot)`                   0.043373 *  
## `Parking(Garage)`                           3.21e-08 ***
## `Post Office/Post Service`                  0.341547    
## `Residence Hall/Dorm`                       0.000170 ***
## `Restaurant/Lounge`                         0.806370    
## `Retail Store`                              4.74e-09 ***
## `Retail(Discount)`                          0.021902 *  
## `Retail(Line/Strip)`                        0.447365    
## `Retirement Facility`                        < 2e-16 ***
## `Rooming House`                             0.001023 ** 
## `School(Public)`                            0.027756 *  
## `Service Building`                          4.64e-08 ***
## `Shopping Ctr(Maj Retail)`                  0.012594 *  
## `Single Family(C/I Zone)`                   0.473724    
## `Single Family(Res Use/Zone)`               0.447475    
## `Sport Facility`                            0.109261    
## `Tavern/Lounge`                             3.12e-12 ***
## `Transferable Dev Rights`                   0.010635 *  
## Triplex                                     0.003184 ** 
## `Utility, Public`                           0.001550 ** 
## `Vacant(Commercial)`                        0.000185 ***
## `Vacant(Industrial)`                        1.25e-10 ***
## `Vacant(Multi-family)`                      0.020991 *  
## Warehouse                                   4.49e-05 ***
## offstreet_spots                             1.43e-10 ***
## ARTCLASS                                    1.03e-10 ***
## ARTDESCRIPTMinor Arterial                   5.45e-07 ***
## ARTDESCRIPTNot Designated                    < 2e-16 ***
## ARTDESCRIPTPrincipal Arterial                     NA    
## SPEEDLIMIT                                  0.051320 .  
## ONEWAYY                                     2.61e-12 ***
## SURFACEWIDTH                                 < 2e-16 ***
## NATIONHWYSYSY                               0.002221 ** 
## STREETTYPEDowntown                          6.44e-09 ***
## STREETTYPEDowntown Neighborhood             4.34e-07 ***
## STREETTYPEDowntown Neighborhood Access      1.48e-07 ***
## STREETTYPEIndustrial Access                 0.863493    
## STREETTYPEMinor Industrial Access           0.537247    
## STREETTYPENeighborhood Corridor             0.763165    
## STREETTYPENeighborhood Yield Street         1.56e-05 ***
## STREETTYPEUrban Village Main                5.22e-07 ***
## STREETTYPEUrban Village Neighborhood              NA    
## STREETTYPEUrban Village Neighborhood Access 3.89e-06 ***
## TRANCLASS                                   7.74e-08 ***
## SLOPE_PCT                                   0.345042    
## dateTime2                                   7.80e-16 ***
## hour                                        1.42e-11 ***
## day1                                         < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.77 on 52248 degrees of freedom
## Multiple R-squared:  0.7028, Adjusted R-squared:  0.7022 
## F-statistic:  1373 on 90 and 52248 DF,  p-value: < 2.2e-16

Final Model

We found that land use and time series data were the most significant data sets.

## 
## Call:
## lm(formula = total_vehicle_count ~ ., data = parking_clean %>% 
##     dplyr::select(-geometry, -elmntkey, -study_year, -time_stamp, 
##         -unitdesc, -rate, -PRIMARYDIS, -"Air Terminal and Hangers", 
##         -"Auditorium//Assembly Bldg", -"Bed & Breakfast", -"Bowling Alley", 
##         -"Car Wash", -"Conv Store with Gas", -"Daycare Center", 
##         -"Driving Range", -"Fraternity/Sorority House", -"Gas Station", 
##         -"Golf Course", -"Greenhse/Nrsry/Hort Srvc", -"High Tech/High Flex", 
##         -"Historic Prop(Eat/Drink)", -"Historic Prop(Loft/Warehse)", 
##         -"Historic Prop(Residence)", -Houseboat, -"Historic Prop(Vacant Land)", 
##         -"Mini Lube", -"Mobile Home", -"Mobile Home Park", -"Movie Theater", 
##         -"Nursing Home", -"Office Park", -"Open Space Tmbr Land/Greenbelt", 
##         -"Open Space(Curr Use-RCW 84.34)", -"Park, Private(Amuse Ctr)", 
##         -"Rehabilitation Center", -"Restaurant(Fast Food)", -"Retail(Big Box)", 
##         -"Right of Way/Utility, Road", -"School(Private)", -"Service Station", 
##         -"Shell Structure", -"Shopping Ctr(Community)", -"Shopping Ctr(Nghbrhood)", 
##         -"Shopping Ctr(Regional)", -"Single Family(C/I Use)", 
##         -"Terminal(Auto/Bus/Other)", -"Terminal(Marine)", -"Terminal(Marine/Comm Fish)", 
##         -"Terminal(Rail)", -"Tideland, 1st Class", -"Townhouse Plat", 
##         -"Utility, Private(Radio/T.V.)", -"Vacant(Single-family)", 
##         -"Vet/Animal Control Srvc", -"Skating Rink(Ice/Roller)", 
##         -"4-Plex", -"Auto Showroom and Lot", -Bank, -"Church/Welfare/Relig Srvc", 
##         -"Group Home", -"Health Club", -Hospital, -"Industrial(Gen Purpose)", 
##         -"Industrial(Heavy)", -"Park, Public(Zoo/Arbor)", -"Parking(Commercial Lot)", 
##         -"Rooming House", -"Single Family(C/I Zone)", -"Utility, Public", 
##         -"Single Family(Res Use/Zone)", -SPEEDLIMIT, -ARTDESCRIPT, 
##         -"Retirement Facility", -Triplex, -NATIONHWYSYS, -"Sport Facility", 
##         -"Historic Prop(Misc)", -ARTCLASS, -"School(Public)", 
##         -"Parking(Garage)", -"Post Office/Post Service", -"Retail(Discount)", 
##         -"Transferable Dev Rights", -"Apartment(Co-op)", -"Art Gallery/Museum/Soc Srvc", 
##         -Club, -"Condominium(Mixed Use)", -"Historic Prop(Rec/Entertain)", 
##         -"Restaurant/Lounge", -"Shopping Ctr(Maj Retail)", -"Retail(Line/Strip)"))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -34.979  -1.182   0.051   1.534  22.916 
## 
## Coefficients:
##                                               Estimate Std. Error t value
## (Intercept)                                  6.613e+00  8.225e-01   8.041
## parking_spaces                               6.521e-01  2.598e-03 250.974
## TOTAL_ZONE                                   1.804e-01  1.025e-02  17.590
## SHAPE_Leng                                  -1.435e-03  1.865e-04  -7.696
## parking_spaces_exg                           1.448e-02  3.074e-03   4.710
## Apartment                                    8.580e-02  1.960e-02   4.377
## `Apartment(Mixed Use)`                       1.484e-01  2.212e-02   6.711
## `Apartment(Subsidized)`                      3.202e-01  4.000e-02   8.007
## `Condominium(Office)`                        4.156e-01  1.516e-01   2.741
## `Condominium(Residential)`                   4.677e-01  4.730e-02   9.889
## `Conv Store without Gas`                    -1.932e+00  2.470e-01  -7.822
## Duplex                                       1.690e+00  1.071e-01  15.785
## `Governmental Service`                      -5.470e-01  9.017e-02  -6.066
## `Grocery Store`                             -5.696e-01  1.538e-01  -3.702
## `Historic Prop(Office)`                      3.551e-01  9.102e-02   3.902
## `Historic Prop(Retail)`                      5.939e-01  1.903e-01   3.120
## `Hotel/Motel`                               -2.335e-01  4.589e-02  -5.088
## `Industrial Park`                           -2.949e+00  4.658e-01  -6.330
## `Industrial(Lignt)`                         -6.504e-01  9.567e-02  -6.798
## Marina                                       1.139e+00  1.099e-01  10.367
## `Medical/Dental Office`                      5.831e-02  4.364e-02   1.336
## `Mini Warehouse`                            -8.053e-01  1.416e-01  -5.685
## `Mortuary/Cemetery/Crematory`                6.644e-01  2.892e-01   2.298
## `Office Building`                            8.296e-02  1.687e-02   4.917
## `Parking(Assoc)`                             2.927e-01  5.332e-02   5.489
## `Residence Hall/Dorm`                        3.196e-01  1.818e-01   1.758
## `Retail Store`                               6.958e-02  1.381e-02   5.039
## `Service Building`                           5.412e-01  6.553e-02   8.259
## `Tavern/Lounge`                             -1.962e+00  2.139e-01  -9.173
## `Vacant(Commercial)`                         1.799e-01  5.705e-02   3.152
## `Vacant(Industrial)`                         2.278e+00  1.852e-01  12.303
## `Vacant(Multi-family)`                      -5.687e-01  1.410e-01  -4.034
## Warehouse                                   -1.434e-01  4.090e-02  -3.505
## offstreet_spots                              5.033e-04  7.437e-05   6.767
## ONEWAYY                                      1.914e-01  3.732e-02   5.129
## SURFACEWIDTH                                 8.772e-03  8.977e-04   9.771
## STREETTYPEDowntown                          -2.154e+00  3.498e-01  -6.157
## STREETTYPEDowntown Neighborhood             -2.026e+00  3.477e-01  -5.827
## STREETTYPEDowntown Neighborhood Access      -1.563e+00  3.468e-01  -4.506
## STREETTYPEIndustrial Access                 -4.420e+00  4.288e-01 -10.308
## STREETTYPEMinor Industrial Access            3.349e-01  3.862e-01   0.867
## STREETTYPENeighborhood Corridor             -1.482e+00  4.735e-01  -3.131
## STREETTYPENeighborhood Yield Street         -1.468e+00  4.001e-01  -3.669
## STREETTYPEUrban Village Main                -2.625e+00  3.498e-01  -7.504
## STREETTYPEUrban Village Neighborhood        -2.116e+00  3.481e-01  -6.079
## STREETTYPEUrban Village Neighborhood Access -1.193e+00  3.447e-01  -3.460
## TRANCLASS                                    9.540e-02  1.365e-02   6.989
## SLOPE_PCT                                    9.197e-03  4.481e-03   2.052
## dateTime2                                   -3.688e-09  4.976e-10  -7.413
## hour                                         1.991e-02  2.874e-03   6.928
## day1                                         1.108e-01  1.530e-02   7.243
##                                             Pr(>|t|)    
## (Intercept)                                 9.13e-16 ***
## parking_spaces                               < 2e-16 ***
## TOTAL_ZONE                                   < 2e-16 ***
## SHAPE_Leng                                  1.43e-14 ***
## parking_spaces_exg                          2.49e-06 ***
## Apartment                                   1.20e-05 ***
## `Apartment(Mixed Use)`                      1.95e-11 ***
## `Apartment(Subsidized)`                     1.20e-15 ***
## `Condominium(Office)`                       0.006125 ** 
## `Condominium(Residential)`                   < 2e-16 ***
## `Conv Store without Gas`                    5.29e-15 ***
## Duplex                                       < 2e-16 ***
## `Governmental Service`                      1.32e-09 ***
## `Grocery Store`                             0.000214 ***
## `Historic Prop(Office)`                     9.56e-05 ***
## `Historic Prop(Retail)`                     0.001807 ** 
## `Hotel/Motel`                               3.64e-07 ***
## `Industrial Park`                           2.47e-10 ***
## `Industrial(Lignt)`                         1.07e-11 ***
## Marina                                       < 2e-16 ***
## `Medical/Dental Office`                     0.181484    
## `Mini Warehouse`                            1.31e-08 ***
## `Mortuary/Cemetery/Crematory`               0.021588 *  
## `Office Building`                           8.81e-07 ***
## `Parking(Assoc)`                            4.06e-08 ***
## `Residence Hall/Dorm`                       0.078810 .  
## `Retail Store`                              4.69e-07 ***
## `Service Building`                           < 2e-16 ***
## `Tavern/Lounge`                              < 2e-16 ***
## `Vacant(Commercial)`                        0.001620 ** 
## `Vacant(Industrial)`                         < 2e-16 ***
## `Vacant(Multi-family)`                      5.50e-05 ***
## Warehouse                                   0.000457 ***
## offstreet_spots                             1.33e-11 ***
## ONEWAYY                                     2.92e-07 ***
## SURFACEWIDTH                                 < 2e-16 ***
## STREETTYPEDowntown                          7.45e-10 ***
## STREETTYPEDowntown Neighborhood             5.66e-09 ***
## STREETTYPEDowntown Neighborhood Access      6.62e-06 ***
## STREETTYPEIndustrial Access                  < 2e-16 ***
## STREETTYPEMinor Industrial Access           0.385839    
## STREETTYPENeighborhood Corridor             0.001744 ** 
## STREETTYPENeighborhood Yield Street         0.000244 ***
## STREETTYPEUrban Village Main                6.30e-14 ***
## STREETTYPEUrban Village Neighborhood        1.21e-09 ***
## STREETTYPEUrban Village Neighborhood Access 0.000541 ***
## TRANCLASS                                   2.80e-12 ***
## SLOPE_PCT                                   0.040136 *  
## dateTime2                                   1.26e-13 ***
## hour                                        4.32e-12 ***
## day1                                        4.45e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.795 on 52288 degrees of freedom
## Multiple R-squared:  0.697,  Adjusted R-squared:  0.6967 
## F-statistic:  2406 on 50 and 52288 DF,  p-value: < 2.2e-16

Predicted as a Function of Observed

## 
## Attaching package: 'hexbin'
## The following object is masked from 'package:rasterVis':
## 
##     hexbinplot

Residual Map of Weekdays

K-Means Cross Validation

## Linear Regression 
## 
## 52339 samples
##    41 predictor
## 
## No pre-processing
## Resampling: Cross-Validated (100 fold) 
## Summary of sample sizes: 51816, 51815, 51816, 51815, 51815, 51815, ... 
## Resampling results:
## 
##   RMSE      Rsquared   MAE     
##   2.793628  0.6867964  1.938689
## 
## Tuning parameter 'intercept' was held constant at a value of TRUE

Mapping MAPE

Measures of Accuracy

MAPE

## [1] 0.5731844

MAE

## [1] 1.936104

4. Final Widget: Predicting Parking Across Seattle (Wednesday 4PM)

The model that we trained on the observation sample set is then deployed to predict parking rates along all curbs with street parking across the entire city. The prediction model requires a day and hour as inputs, which would be populated by the user in the application’s user interface. For illustrative purposes, we input a typical Wednesday and 4:00 PM.

Zoom in on any location and hover your mouse over each block with street parking to see how many spaces are predicted to be remaining (total avaialble spots less predicted demand). The yellow dots indicate public parking garages and parking lots, hover your mouse over them to see how many total spaces each has.

5. DISCUSSION & CONCLUSION

Error in our predictions may arise from the type of regression we used, the feature engineering data chunks, and scales we employed.

If we were to continue to develop this model, we would explore the use of an Ensemble Model. Given that parking demand indicators on residential and commercial streets are different, the use of an ensemble model, could help to determine nuance in the parking supply needed for a discrete development or on a specific segment of street. >An ensemble occurs when the probability predictions or numerical predictions of multiple machine models are combined by averaging, weighting each model and adding them together or using the most common observation between models. This provides a multiple vote scenario that is likely to drive a prediction to the correct class or closer to the correct number in regression models. Ensembles tend to work best when there are disagreements between the models being fit. The concept of combining multiple models also seems to perform well in practice, often above implementations of single algorithms. Ensembles can be created manually by fitting multiple models, predicting with each of them and then combining them.

Additionally, we could improve predictive power by filling gaps in data. There are some holes in our data, with certain time series and on some block faces. In this case, missingness is most likely not random, it may depend on unobserved predictors or on information that has not been recorded and this information also predicts the missing values. But it is more likely that missingness depends on the missing value itself, which is a particularly difficult situation for accurate modeling. We could throw away missing data, but that may lead to biased estimates. Instead, the best solution would be to impute missing vales by including more predictors in the missing-data model. While it could be possible to predict missing values based on the other variables in our dataset, this situation could force our predictive models to extrapolate beyond the range of the observed data.

Current parking requirements often contradict good planning principles, for example traffic safety campaigns and law discourage drinking and driving but local zoning codes ensure easy driving experience to bars and restaurants. Parking is ugly, increases development costs, reduces housing affordability, reduces economic productivity and tax revenue per unit of land, encourages automobile ownership and use, increases impervious surface area & urban heat island effect, & stimulates urban sprawl. If we knew where highest volume parking areas are, we could begin to tease out a decision-making process for eliminating superfluous parking in favor of other uses, such as green space, public space, or stormwater gardens. While a move like this would definitely need some research and super models to help support decisions to eliminate parking in favor of green infrastructure, Seattle might be just the place to try it out!

See the Youtube video for our vision of what this model could do and a related app: